package com.ionehe.group.common.uaa.ex.domain.service;


import com.ionehe.group.common.io.Response;
import com.ionehe.group.common.uaa.ex.dto.FunctionDTO;
import com.ionehe.group.common.uaa.ex.dto.ManageInfoDTO;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.List;

/**
 * Copyright (c) 2020 ionehe.com
 * Date: 2020/11/26 0026
 * Time: 15:40
 *
 * @author 2020年 <a href="mailto:a@ionehe.com">秀</a>
 * 后台管理员Service
 */
public interface AdminReadService {
    /**
     * 根据用户名获取后台管理员
     *
     * @param username 用户名
     * @return 用户信息
     */
    Response<ManageInfoDTO> getAdminByUsername(String username);

    /**
     * 获取指定用户的可访问资源
     *
     * @param account 用户id
     * @return 用户的可访问资源
     */
    Response<List<FunctionDTO>> getResourceList(String account);

    /**
     * 获取用户信息
     *
     * @param username 用户名
     * @return 用户详情
     */
    Response<UserDetails> loadUserByUsername(String username);

    /**
     * 获取用户信息
     *
     * @param token token
     * @return 用户详情
     */
    Response<ManageInfoDTO> getAdminByToken(String token);
}
